package com.yunxin.core.application.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yunxin.core.application.dto.merchant.MerchantUserAccountInfoDTO;
import com.yunxin.core.application.dto.team.*;
import com.yunxin.core.domain.model.team.Team;
import com.yunxin.core.wechat.domain.WechatInfo;

import java.util.List;

public interface TeamService extends IService<Team> {
    /**
     * 分页查询团队列表
     * @param command
     * @return
     */
    IPage<Team> getTeamPage(TeamPageCommand command);

    List<WechatInfoVO> wechatInfoList(String  corpName);

    /**
     * 添加团队
     * @param dto
     * @return
     */
    Boolean add(TeamAddDTO dto);

    /**
     * 修改团队
     * @param dto
     * @return
     */
    boolean edit(TeamEditDTO dto);

    /**
     * 修改团队状态
     * @param team
     * @return
     */

    boolean editTeamStatus(Team team);

    /**
     * 删除团队
     * @param dto
     * @return
     */
    boolean delete(TeamDeleteDTO dto);

    /**
     * 团队下拉列表
     * @return
     */
    List<Team> getTeamList(Long merchantId );

    List<Team> getAllTeamList();

    /**
     * 根据id查询团队
     * @param teamId
     * @return
     */
    Team selectTeamById(Long teamId);

    /**
     * 团队管理员，根据userId查询团队信息
     * @param userId
     * @return
     */
    List<Team> getTeamListByUserId(Long userId);

    /**
     * 团队管理员只能看自己团队下的子账户
     * @param userId
     * @return
     */
    List<MerchantUserAccountInfoDTO> getUserForTeamList(Long userId,List<Long> teamIds);
}
